In-stream controls for national video distribution

ABSTRACT

Systems and methods are described for delivering regional content for a lineup over a national network. A content provider may select a particular regional broadcast for inclusion in a regional service lineup. The content provider may be able to broadcast multiple, or even all, services nationally. At regional distribution centers, a multiplexer may select only those services that are desired for the region in response to in-stream signals. In some instances, a single region-specific version of a given service may be selected from multiple versions broadcasted nationally. The regional lineup, including the selected services, can then be multiplexed and transmitted to customers throughout the region.

BACKGROUND

Telecommunication systems are increasing in complexity and bandwidth. Inaddition, content distributors have increasing numbers of optionsavailable for distribution to their customers. In many instances,content distributors often operate with content providers to providecontent tailored to customers in different regions. Providing content tothose customers is a complicated hurdle for distributors, and thetechnology behind that distribution is always changing. However, much ofthe technology being used for distribution backbones has remained fairlystagnant in recent years.

Distributors may encounter situations where content must be delivered toone customer but not another. For example, a distributor may have asports broadcast intended for a customer in Washington, and anotherbroadcast might be better suited for customers in California. In anotherexample, a football game might be scheduled to air in a particular timeslot on a particular channel, but if the tickets to the game do not sellout, contractual obligations might require that the football game not beaired to households in an area (e.g., a blackout area) around thestadium. In such examples, the distributor might have to insert newcontent to fill the timeslot that would ordinarily have carried thefootball game. Such a swapping in, and swapping out, of content can be acomplicated process, and there remains an ever-present need for improvedways to carry out this swapping.

SUMMARY

According to some aspects described herein, a system may provide fordelivering regional content for a lineup over a national network. Acontent provider may intend to select a particular regional broadcastfor inclusion in a regional lineup. The content provider may be able tobroadcast multiple, or even all, services nationally. In some instances,a service may be a channel. At regional distribution centers, amultiplexer may select only those services that are desired for theregion in response to in-stream signals. In some instances, a singleregion-specific version of a given service may be selected from multipleversions broadcasted nationally. The regional lineup, including theselected services, may then be transmitted to customers throughout theregion.

Multiplexing controls may be embedded inside content streams. Since thecontent stream may contain instructions for multiplexing, a multiplexermay then simply react to those instructions, switching between contenton the fly. For example, a Society of Cable Telecommunications Engineers(SCTE) 35 protocol command may be inserted into the content stream. Thecommand may contain instructions for switching the multiplexer. Theinstructions may indicate a region to be received, identify the stream,identify a tier of service, or provide any other means for themultiplexer to identify content streams to include in a regional lineup.

In some embodiments, a multiplexer for a given region may receive anumber of alternative video feeds. The video feeds may be made up ofalternative feeds that may be used for a single spot in a regionalservice lineup provided by the multiplexer to downstream users, and eachfeed may include multiplexing instructions for how that particular feedshould be selected for inclusion in the regional service lineup. Themultiplexer may select one of the alternative video feeds to be includedin the regional service lineup based on those multiplexing instructions.The multiplexer may transmit the regional service lineup that includesone of the different alternative video feeds. In some instances, theregional service lineup may include one of a number of alternate videofeeds and a number of other feeds. In some embodiments, the multiplexermay monitor the selection of one of the number of alternative videofeeds and may record this monitoring in a log. In some instances, thenumber of different video feeds may include Internet Protocol feeds, andthe regional service lineup may include a transmission by quadratureamplitude modulation (QAM). In some instances, the multiplexinginstructions may include in-stream messaging. In some embodiments, thein-stream messaging may include an SCTE 35 protocol command. In someinstances, the selection of one of a number of different video feeds maycompare regional identifiers provided by a scheduler with the SCTE 35protocol command. In some embodiments, a primary video feed may includea first variable bitrate with a minimum bitrate, and each of theplurality of alternate video feeds may have a constant bitrate less thanor equal to the minimum bitrate.

In some instances, a scheduler may create a schedule, indicating thechannel lineup(s) that each regional multiplexer is supposed to provideto the regional multiplexer's downstream users or devices, and mayprovide the schedule to one or more signal inserters. The signalinserters may receive the schedule, and the national feeds (which maycontain many feeds of audiovisual services), and may insert controlcommands into the feeds themselves (e.g., using a field in a videostream data protocol) that the various regional multiplexers would useto automatically select the correct feeds and provide the appropriateservice lineup that they are to provide to their downstream users ordevices. In some embodiments, the instruction inserted by the signalinserter may include an Event Signaling and Messaging (ESAM)instruction, inserted into the feeds using SCTE35 protocols. The signalsembedded in the various video feeds may allow the regional multiplexersto select video feeds and insert them into the multiplexers' respectiveservice lineups without requiring the multiplexers to decode the videoand re-encode the video.

This summary is not intended to identify critical or essential featuresof the disclosure, but merely to summarize certain features andvariations thereof. Other details and features will be described in thesections that follow.

BRIEF DESCRIPTION OF THE DRAWINGS

Some features herein are illustrated by way of example, and not by wayof limitation, in the figures of the accompanying drawings, in whichlike reference numerals refer to similar elements, and in which:

FIG. 1 depicts an illustrative network environment in which one or moreaspects of the disclosure may be implemented;

FIG. 2 depicts an illustrative software and hardware device on whichvarious aspects of the disclosure may be implemented;

FIG. 3 depicts an illustrative system for delivering alternative contentvia satellite;

FIG. 4 depicts an illustrative system for delivering alternative contentvia backbone network;

FIG. 5 depicts an illustrative example of switching streams based on anSCTE 35 message;

FIG. 6 depicts an illustrative example of a section command;

FIG. 7 depicts an illustrative example of a schedule command;

FIG. 8 depicts an illustrative example of an insert command; and

FIG. 9 depicts an illustrative method for multiplexing based onin-stream signaling.

DETAILED DESCRIPTION

According to some aspects described herein, a system may select contentstreams from among a plurality of content streams supplied by a contentprovider. In some embodiments, content streams may be video feeds. Insome instances, the video feeds may be individual services that may betransmitted to a user. The selected content streams may be used to forma regional service lineup. In some instances, there may be a number ofalternative content streams for a given slot in the lineup. For example,a sports channel might have one broadcast intended for Washington, andanother intended for Texas. The content streams may contain embeddedinstructions which may instruct a multiplexer to select one or morestreams from among the content streams. In some instances, a Society ofCable Telecommunications Engineers (SCTE) 35 protocol command may beinserted into the content stream in order to provide instructions to themultiplexer. This may allow the multiplexer to select a particularcontent stream for inclusion on the regional service lineup andmultiplex the stream into the lineup on the fly. The regional servicelineup may then be transmitted to consumers.

FIG. 1 illustrates an example information distribution network in whichone or more of the various features described herein may be implemented.The illustrated information distribution network is only one example ofa network and is not intended to suggest any limitation as to the scopeof use or functionality of the disclosure. The illustrated networkshould not be interpreted as having any dependency or requirementrelating to any component or combination of components in an informationdistribution network.

A network 100 may be a telecommunications network, a Multi-ServiceOperator (MSO) network, a cable television (CATV) network, a cellularnetwork, a wireless network, an optical fiber network, a coaxial cablenetwork, a Hybrid Fiber-Coaxial (HFC) network, or any other type ofinformation distribution network or combination of networks. Forexample, the network 100 may be a cellular broadband networkcommunicating with multiple communications access points, such as awireless communications tower 130. In another example, the network 100may be a coaxial system comprising a Cable Modem Termination System(CMTS) communicating with numerous gateway interface devices (e.g., agateway 111 in an example home 102 a). In another example, the network100 may be a fiber-optic system comprising optical fibers extending froman Optical Line Terminal (OLT) to numerous Optical Network Terminals(ONTs) communicatively coupled with various gateway interface devices.In another example, the network 100 may be a Digital Subscriber Line(DSL) system that includes a local office 103 communicating withnumerous gateway interface devices. In another example, the network 100may be an HFC network in which Internet traffic is routed over bothoptical and coaxial communication paths to a gateway interface device inor near a user's home. Various aspects of the disclosure may operate onone or more of the networks described herein or any other networkarchitectures now known or later developed.

The network 100 may use a series of interconnected communication links101 (e.g., coaxial cables, optical fibers, wireless links, etc.) toconnect a premises 102 (e.g., a home or other user environment) to thelocal office 103. The communication links 101 may include any wiredcommunication links, wireless communication links, communicationsnetworks, or combinations thereof. For example, portions of thecommunication links 101 may be implemented with fiber-optic cable, whileother portions of the communication links 101 may be implemented withcoaxial cable. The communication links 101 may also include variouscommunications components such as splitters, filters, amplifiers,wireless components, and other components for communicating data. Datamay include, for example, Internet data, voice data, weather data, mediacontent, and any other information. Media content may include, forexample, video content, audio content, media on demand, video on demand,streaming video, television programs, text listings, graphics,advertisements, and other content. A media content item may represent anindividual piece of media content, such as a particular movie,television episode, online video clip, song, audio recording, image, orany other data. In some instances, a media content item may befragmented into segments, such as a plurality of two-second videofragments that may be separately addressed and retrieved.

The local office 103 may transmit downstream information signals ontothe communication links 101, and one or more of the premises 102 mayreceive and process those signals. In certain implementations, thecommunication links 101 may originate from the local office 103 as asingle communications path, and may be split into any number ofcommunication links to distribute data to the premises 102 and variousother destinations. Although the term premises is used by way ofexample, the premises 102 may include any type of user environment, suchas single family homes, apartment complexes, businesses, schools,hospitals, parks, and other environments and combinations ofenvironments.

The local office 103 may include an interface 104, which may be acomputing device configured to manage communications between devices onthe network of the communication links 101 and backend devices, such asa server. For example, the interface 104 may be a CMTS. The terminationsystem may be as specified in a standard, such as, in an example of anHFC-type network, the Data Over Cable Service Interface Specification(DOCSIS) standard, published by Cable Television Laboratories, Inc. Thetermination system may be configured to transmit data over one or moredownstream channels or frequencies to be received by various devices,such as modems in the premises 102, and to receive upstreamcommunications from those modems on one or more upstream frequencies.

The local office 103 may include one or more network interfaces 108 forcommunicating with one or more external networks 109. The one or moreexternal networks 109 may include, for example, one or moretelecommunications networks, Internet Protocol (IP) networks, cellularcommunications networks (e.g., Global System for Mobile Communications(GSM), Code Division Multiple Access (CDMA), and any other 2nd, 3rd,4th, or higher generation cellular communications networks), cellularbroadband networks, radio access networks, fiber-optic networks, localwireless networks (e.g., Wi-Fi, WiMAX), satellite networks, and anyother networks or combinations of networks.

The local office 103 may include a variety of servers that may beconfigured to perform various functions. The local office 103 mayinclude a push server 105 for generating push notifications to deliverdata, instructions, or both to devices that are configured to detectsuch notifications. The local office 103 may include a content server106 configured to provide content (e.g., media content) to devices. Thelocal office 103 may also include an application server 107.

The premises 102, such as the example home 102 a, may include aninterface 120, which may include a modem 110 (or any device), forcommunicating on the communication links 101 with the local office 103,the one or more external networks 109, or both. For example, the modem110 may be a coaxial cable modem (for coaxial cable links), a broadbandmodem (for DSL links), a fiber interface node (for fiber-optic links),or any other device or combination of devices. In certainimplementations, the modem 110 may be a part of, or communicativelycoupled to, the gateway 111. The gateway 111 may be, for example, awireless router, a set-top box, a computer server, or any othercomputing device or combination.

The gateway 111 may be any computing device for communicating with themodem 110 to allow one or more other devices in the example home 102 ato communicate with the local office 103, the one or more externalnetworks 109, or other devices communicatively coupled thereto. Thegateway 111 may include local network interfaces to providecommunication signals to client devices in or near the example home 102a, such as a television 112, a set-top box 113, a personal computer 114,a laptop computer 115, a wireless device 116 (e.g., a wireless laptop, atablet computer, a mobile phone, a portable gaming device a vehicularcomputing system, a mobile computing system, a navigation system, anentertainment system in an automobile, marine vessel, aircraft, or thelike), or any other device.

FIG. 2 illustrates general hardware elements and software elements thatcan be used to implement any of the various computing devices, servers,encoders, caches, and/or software discussed herein. A device 200 mayinclude a processor 201, which may execute instructions of a computerprogram to perform any of the functions and steps described herein. Theinstructions may be stored in any type of computer-readable medium ormemory to configure the operation of the processor 201. For example,instructions may be stored in a Read-Only Memory (ROM) 202, a RandomAccess Memory (RAM) 203, a removable media 204, such as a UniversalSerial Bus (USB) drive, Compact Disk (CD) or Digital Versatile Disk(DVD), hard drive, floppy disk, or any other desired electronic storagemedium. Instructions may also be stored in a hard drive 205, which maybe an internal or external hard drive.

The device 200 may include one or more output devices, such as a display206 (e.g., an integrated or external display, monitor, or television),and may include a device controller 207, such as a video processor. Insome embodiments, the device 200 may include an input device 208, suchas a remote control, keyboard, mouse, touch screen, microphone, motionsensing input device, and/or any other input device.

The device 200 may also include one or more network interfaces, such asa network Input/Output (I/O) interface 210 to communicate with a network209. The network interface may be a wired interface, wireless interface,or a combination of the two. In some embodiments, the network I/Ointerface 210 may include a cable modem, and the network 209 may includethe communication links 101 shown in FIG. 1, the one or more externalnetworks 109, an in-home network, a provider's wireless, coaxial, fiber,or hybrid fiber/coaxial distribution system (e.g., a DOCSIS network),and/or any other desired network.

FIG. 3 depicts an illustrative system for delivering alternate contentvia satellite. A content provider 305 may identify numerous contentstreams for inclusion in numerous service lineups. The content streamsmay include content streams to be included nationally in service lineupsand/or it may include content streams intended for a particular regionor set of regions. In some instances, the content streams intended forthe particular region or set of regions may include a primary contentstream and one or more alternate content streams that may be bettersuited for a certain audience, or intended to be outputted due to aregional blackout. In some instances, the content streams may be videofeeds, which may represent television channels.

A primary feed 310 may be transmitted by the content provider. Forexample, the content provider may transmit a primary feed including acontent stream to be included nationally in service lineups. Adistribution network 315 may be used to carry the primary feed 310 andother feeds 320. The distribution network may be fiber optic lines,cable lines, telephone lines, or any other means of contenttransmission. The other feeds 320 may come from other content providers.For example, content provider 305 may provide one service, while othercontent providers may provide other services via other feeds 320, whichmay be carried on separate communication lines. The combined primaryfeed 310 and other feeds 320 may be transmitted over the distributionnetwork 315 as combined feeds 325 to a regional multiplexer 340.

The content provider 305 may wish to supply an alternate feed 330 to theregional multiplexer 340, for use in certain markets. For example, asports network may carry a first football game to be seen by all of itsviewers outside of Texas, while its Texas viewers are shown a differentgame that is of local interest to Texans. In some embodiments, thecontent provider 305 may transmit the alternate feed to a satellite 335.The satellite 335 may then transmit the alternate feed 330 to theregional multiplexer 340, and the regional multiplexer is responsiblefor making sure that the correct video feed is placed in the downstreamchannel/service lineup provided to its customers.

The regional multiplexer 340 may then take the combined feeds 325 andthe alternate feed 330 and compose a regional service lineup. Theregional multiplexer may replace the primary feed 310 and introduce thealternate feed 330. The regional multiplexer may have to re-encode theresultant feed prior to transmission. For example, primary feed 310might be a variable bitrate feed that is time multiplexed with otherfeeds into a single QAM channel. The feeds may then be re-multiplexedinto a new feed and transmitted to client devices 345, which may beconsumer devices, such as set top box 113.

FIG. 4 depicts an illustrative system for delivering alternative contentvia a backbone network. Rather than supplying the alternative contentvia a satellite link while the primary content is sent via thedistribution network 315, some or all of the alternative content may besent along with the primary content down a provider's backbone network,which may comprise, for example, fiber-optic, coaxial and other datatransmission networks. A content provider 405 may identify numerouscontent streams for inclusion in numerous service lineups. The contentprovider may be any source of content supplied to a distributor. Forexample, a content provider could be a major sports broadcaster whoregularly supplies sports content to service providers, and the serviceproviders may be distributors.

Content streams may be formatted a variety of ways. In some instances,the streams may be formatted to carry television broadcasts. In someinstances, the content streams may be formatted as Internet Protocolfeeds. For example, a Moving Picture Experts Group (MPEG) protocol maybe used to deliver the content streams over an Internet Protocolconnection. In some instances, content streams may be Multi-ProgramTransport Streams (MPTS) and/or Single Program Transport Streams (SPTS).

In some instances, the content provider 405 may supply multiple versionsof a feed. A content provider may supply a primary feed 410, andalternate feeds 415. The alternate feeds 415 may be intended to replacethe primary feed in certain markets. For example, the primary feed maybe a regular national broadcast of a news program. The alternate feedmay be a celebration special for a target audience, such as agubernatorial inauguration for a small state, that replaces the newsbroadcast for that small state. In another example, one sports contestmay usually be broadcast nationally as primary feed 410, while a numberof regional games may be supplied as alternate feeds 415 as replacementsfor primary feed 410 in certain regional markets.

In some embodiments, the primary feed 410 and alternate feeds 415 may becombined with other feeds 420 at a signal inserter 425 to form combinedfeeds 435 that are ultimately supplied to the various regionalmultiplexers. In some instances, the signal inserter may take multiplecontent streams and multiplex them for transmission through adistribution network 440 to the multiplexers. The distribution network440 may be made up of a fiber optic line, a coaxial cable, a wirelesstransmission, satellite communication, external networks 109, acombination of these, or virtually any other means of communication. Thesignal inserter may be responding to instructions and/or a schedule froma scheduler 430. Instructions may instruct the signal inserter as towhich feeds to include in the combined feeds 435, and the time(s) atwhich the insertion should occur. As an example, a major sportsbroadcasting network may supply one national sports telecast as theprimary feed 410 and six regional sports telecasts as the alternatefeeds 415 to the signal inserter 425. A number of other channels, suchas home improvement or news channels, might be supplied as the otherfeeds 420 to the signal inserter 425. A scheduler 430 might instruct thesignal inserter 425 to include the national sports telecast, five of thesix regional sports telecasts, and the other feeds as the combined feeds435. In some instances, the scheduler may send an Event Signaling andMessaging (ESAM) instruction to the signal inserter which instructs thesignal inserter to insert particular feeds for transmission to thedistribution network 440. In some instances, there may be multiplesignal inserters, such that the signal inserters continually addaggregate feeds into the combined feeds at different points in thedistribution network 440 before creating a final set of combined feeds445.

The scheduler 430 may send instructions to the signal inserter 425. Forexample, the scheduler 430 may send an ESAM instruction instructing thesignal inserter 425 that certain streams should be used for certainregions. The scheduler 430 may be aware of the devices in the network.For example, the scheduler 430 may be aware of the content provider(s),the signal inserter(s), the distribution network(s), the regionalmultiplexer(s), the regional device(s), and/or the regional zone(s) tobe serviced. Based on this information, the scheduler 430 may determinewhich regional feeds are intended for given streams. The scheduler 430may then generate an instruction for the signal inserter 425, such as inan ESAM message, instructing the signal inserter which feeds should beassigned to which regions.

The signal inserter 425 may then insert one or more SCTE 35 protocolmessages into one or more content streams based on the instruction foruse by a regional multiplexer 450 to select among content streams forinclusion in an outputted regional feed 455 to a client device 460. Thesignal inserter may insert the in-stream instructions based oninstructions received from the scheduler. For example, based on theregion assignments for a stream given in an ESAM message, the signalinserter 425 may consult a lookup table. A lookup table may specify aregion code for a region. The signal inserter may then generate acommand that includes the region code and indicates a stream to switchto (e.g., the alternative stream that is to replace the current streamcarrying the command) as specified by the ESAM message. The signalinserter may then insert the SCTE 35 protocol command into the contentstream. Further discussion of SCTE 35 protocol commands may be found inFIGS. 6-8. This may have the advantage of allowing the downstreammultiplexer 450 to choose content streams automatically based on thein-stream messages, rather than needing manual intervention.

The Combined feeds 445 may then be sent through a distribution network440 to a regional multiplexer 450. The distribution network 440 may be abackbone network capable of handling a large number of streams. Forexample, the distribution network 440 may be a fiber optic network withover 1 Gbps in bandwidth. This may have the advantage of allowing allthe content streams to be sent over the same network. This may eliminatealternative delivery means for alternate feeds 415, such as the methodof transmission via satellite described in FIG. 3.

The combined feeds 445 may be received by a regional multiplexer 450.The multiplexer may include a device 200. In some instances, themultiplexer may include specialized multiplexing hardware. For example,the multiplexer may include an application-specific integrated circuit(ASIC) or as a field-programmable gate array (FPGA). The specializedhardware may not be able to function as a general purpose computingdevice, and may only respond to very specific instructions such as thosedescribed herein. The implementation may allow the multiplexer to doreal-time or near real-time multiplexing of input streams into multiplepumping processes. The pumping process may be processes executed by theregional multiplexer 450, and each pump process may be responsible foroutputting one of the services or channels in the multiplexer's servicelineup (e.g., one pumping process may be responsible for supplying thevideo stream that is to go on slot #2 of the multiplexer's servicelineup, and may be responsible for receiving and processing theappropriate input feed for that output slot). Multiplexing may involve anumber of techniques, such as statistical multiplexing, time divisionmultiplexing, frequency division multiplexing, code division multipleaccess multiplexing, some combination of these, or any other form ofmultiplexing suitable for content stream transmission. In someinstances, the multiplexing may conform to QAM standards.

The scheduler 430 may send instructions to a regional multiplexer 450.For instance, the scheduler 430 may send an ESAM message that configuresthe regional multiplexer 450. For example, the ESAM message may assign aregion code to the regional multiplexer 450. Also, the ESAM message mayidentify default streams for inclusion in a regional feed 455. Forexample, an ESAM message from the scheduler 430 may specify a servicelineup for the regional feed 455. The ESAM message may also specify aprimary stream for each slot in the service lineup. The multiplexer maythen use the primary stream as the default stream for the methoddescribed in FIG. 9.

Based on the configuration received from the scheduler 430 and/or thein-stream instructions inserted by the signal inserter 425, the regionalmultiplexer 450 may perform a method for multiplexing, such as themethod described in FIG. 9, to generate a regional feed 455.

The resulting regional feed 455 may then be transmitted to the clientdevices 460. For example, a regional multiplexer in Alexandria, Virginiamay multiplex in an appropriate regional sports telecast with the otherfeeds into a regional feed, and transmit it to a set top box inAlexandria. In some instances, the regional feed may be transmitted overthe communication link 101 to devices in the home 102 a.

FIG. 5 depicts an example of switching streams based on an SCTE 35message. A selected output stream 525 of a regional service lineup maybegin with a primary broadcast 505. In some instances, the primarybroadcast 505 may be the primary feed 410. For example, a sports channelmay run a pre-game show showcasing a day's football games, which isimmediately followed by the national game of the week. An alternatebroadcast 515 may be available to the regional multiplexer, but may becurrently being discarded by the multiplexer and not include in theservice lineup that the multiplexer supplies to its users and devices.For example, the alternate broadcast 515 may be a live feed for aregional sporting event, which may be left out of a downstream contentstream in favor of the primary broadcast 505. In some instances, thealternate broadcast 515 may be one of the alternate feeds 415.

An SCTE 35 message 510 may be embedded in the primary broadcast 505. Themessage 510 may instruct a multiplexer to switch between the primarybroadcast and the alternate broadcast according to the method describedin FIG. 9. This method may include a multiplexing operation 520. Themultiplexing operation 520 may switch the alternate broadcast 515 intothe selected output stream 525 and begin to discard the primarybroadcast 505. For example, when the pre-game show ends, the SCTE 35message may instruct the multiplexer to broadcast the regional sportingevent rather than the national game of the week. The transition may beseamless. For example, a consumer may see the pre-game show transitiondirectly into the regional sporting event view the content stream on aset top box 113.

In some instances, the alternate broadcast 515 may be a lack of content.For example, the primary broadcast 505 may be a pre-game show, and thealternate broadcast 515 may not have any content until a regionalsporting event begins at the point where the multiplexing operation 520occurs—viewers who are blacked out might simply see a message indicatingthat the game has been blacked out. In another example, there may be ablackout of a football game included in the primary broadcast 505 forthe region serviced by the multiplexer, and the alternate broadcast 515may be a blank screen or message indicating that the football game hasbeen blacked out.

FIG. 6 depicts an example of a section command that might be used as anSCTE 35 protocol instruction for a multiplexer. For example, a sectioncommand may be a splice_info_section( ) command (section commands willbe referenced as splice_info_section( ) commands throughout forsimplicity). In some embodiments, a splice_info_section( ) command 600may be inserted into a data stream to indicate that the multiplexershould expect a switching command to follow. The splice_info_section( )command 600 may be placed at the beginning of a transport packet so thatthe multiplexer can properly interpret the data as an instruction. Asignal inserter 425 may insert the splice_info_section( ) into thecontent stream in response to an instruction from a scheduler 430. Forexample, the scheduler 430 may send an ESAM message to the signalinserter 425 that prompts the signal inserter to create correspondingSCTE 35 protocol instructions for a downstream multiplexer. Thesplice_info_section( ) command may indicate to a multiplexer that anSCTE 35 instruction is incoming. An included field splice_command_type() field 605 may indicate the type of command to follow. For example,“0000 0100” may indicate a splice_schedule( ) command, or “0000 0101”may indicate a splice_insert( ) command.

FIG. 7 depicts an example of a schedule command that may be used as anSCTE 35 protocol “time trigger” instruction for a multiplexer. Forexample, a schedule command may be a splice schedule( ) command(schedule commands will be referenced as splice_schedule( ) commandsthroughout for simplicity). In some embodiments, a splice_schedule( )command 700 may instruct a multiplexer to switch to a specified contentstream at a specified future time. The command may include multiplefields. The splice_event_id field 705 may indicate particular regions orintended multiplexers for a content stream. For example, the numericalvalue “0000 0011 0011 0111 0101 0111 1111 0001” in the splice_event_idfield 705 may correspond to a particular regional multiplexer or groupof regional multiplexers, and the multiplexers may only considercommands with that numerical value. The out_of_network_indicator flag715 may be used to indicate an alternate broadcast. The flag 715 mayindicate that the content stream carrying the command is a primarybroadcast, or may indicate that it is an alternate broadcast. Theutc_splice_time field 720 may instruct the multiplexer on when to switchto a particular content stream. For example, the utc_splice_time field720 may indicate that the content stream has an alternate broadcast at6:45 PM. The unique_program_id field 725 may be a content identifier.For example, it may specify stream 47, or locally stored file 5. If theregion specified by splice_event_id field 710 corresponds to themultiplexer, the multiplexer may schedule a switching operation for thetime specified by the utc_splice_time field 720 to the content indicatedby the unique_program_id field 725. For example, finding that the regioncode matches the region of the multiplexer, the multiplexer may scheduleto switch at 6:45 PM from the current stream to stream 47. Furtherdescription of a method of multiplexing based on commands may be foundin FIG. 9.

FIG. 8 depicts an example of an insert command that may be used as anSCTE 35 protocol instruction for a multiplexer. For example, an insertcommand may be a splice_insert( ) command (insert commands will bereferenced as splice_insert( ) commands throughout for simplicity). Insome embodiments, a splice_insert( ) command 800 may instruct amultiplexer to switch to a particular content stream. The command mayinclude multiple fields. The splice_event_id field 805 may indicateparticular regions or intended multiplexers for a content stream. Forexample, the numerical value “0001 1111 1101 0101 0101 1100 0101 0101”in the splice_event_id field 805 may correspond to a particular regionalmultiplexer or group of regional multiplexers, and the multiplexers mayonly consider commands with that numerical value. Theout_of_network_indicator flag 810 may be used to indicate an alternatebroadcast. For example, the flag 810 may indicate that the contentstream is a primary broadcast, or may indicate that it is an alternatebroadcast. The unique_program_id field 815 may be a content identifier.For example, it may specify stream 47, or locally stored file 5. If theregion specified by splice_event_id field 805 corresponds to themultiplexer, the multiplexer may immediately switch to the contentindicated by the unique_program_id field 815. For example, finding thatthe region code matches the region of the multiplexer, the multiplexermay switch from the current stream to stream 47. Further description ofa method of multiplexing based on commands may be found in FIG. 9.

FIG. 9 depicts an illustrative method for multiplexing based onin-stream signaling. The method may be performed by a multiplexer, suchas a regional multiplexer 450. In some embodiments, an instance of themethod may operate on a stream for each output of the multiplexercorresponding to a slot in a regional service lineup. This may be doneconcurrently for each stream. The multiplexer may initially perform themethod on a default stream assigned for the slot by the scheduler 430.Once a stream has been switched, the method may continue operating onthe new stream multiplexed for the slot.

At step 905, the multiplexer may be configured. The configuration mayinclude a mapping, which may configure the multiplexer to assign givenservices to given slots. This mapping may be configured by an ESAMmessage from a scheduler 430, such as described in FIG. 4. For example,a channel on cars may be assigned to a third slot in a fourth QAMchannel, which may correspond to a service on a region's service lineup.In some instances, a plurality of alternative content streams may beassigned to a given slot in the service lineup. For example, a sportschannel may have seven different assigned streams. In this example,there may be national game of the week and six different games to beshown in different regions, though all may be assigned to the same slotin the service lineup. Since many or all content streams may betransmitted over the distribution network 440, some content streams maynot be used at all for a given region. For example, a regional servicelineup in Oregon may not include any slots for a content stream of anAlabama regional sports channel for any tier of service, perhaps due tobandwidth constraints downstream from the multiplexer, so the channelmay be discarded. In some instances, a default stream for each slot in aservice lineup may be configured in case of an error and/or a lack ofinstruction.

The multiplexer may also be configured with an assigned region. Forexample, a scheduler 430 may provide a region identifier of “0000 00110011 0111 0101 0111 1111 0001” to a multiplexer servicing Alexandria,Va. This will allow the multiplexer to consider only commands thatpertain to its particular region as described further below.

At step 910, the multiplexer may check for a command. The multiplexerwill inspect the stream currently multiplexed by a pump to a slot in aregional service lineup for an in-stream command. For instance, themultiplexer may check for an SCTE 35 protocol message command present inthe content stream. In some instances, the command may comprise asplice_info_section( ) message followed by either a splice_schedule( )message or a splice_insert( ) message. In some instances, themultiplexer may simply identify a splice_info_section( ) message todetermine that there is an SCTE 35 protocol message command. If there isno command, the multiplexer may check for a time trigger 935. Otherwise,the multiplexer may proceed to further parse the command at step 915.

At step 915, the multiplexer may check if the region code of the commandmatches an an assigned region identifier for the multiplexer. Forexample, the multiplexer may have an assigned region identifier of “00000011 0011 0111 0101 0111 1111 0001.” The multiplexer may check itsassigned region identifier versus a code in the command. For example, asplice_event_id field 705 or splice_event_id field 805 might include thecode “0000 0011 0011 0111 0101 0111 1111 0001.” If the region code is amatch, the multiplexer may proceed to step 920. Else, the multiplexermay return to checking for a command at step 910.

At step 920, the multiplexer may check to see if the command instructsthe multiplexer to switch now. For instance, the multiplexer may checkto see if the command is a splice_insert( ) command as described in FIG.8. If the command does instruct the multiplexer to switch now, themultiplexer may proceed to parse the command for switching instructionsby checking a content ID at step 940. If the command does not instructthe multiplexer to switch now, the multiplexer may proceed to check ifthe command instructs the multiplexer to switch at a later time at step925.

At step 925, the multiplexer may check to see if the command instructsthe multiplexer to set a time trigger for switching at a later time. Forinstance, the multiplexer may check to see if the command is asplice_schedule( ) command as described in FIG. 7. If the command doesinstruct the multiplexer to set a time trigger for switching at a latertime, the multiplexer may proceed to step 930. Else, the multiplexer mayreturn to check for a command at step 910.

At step 930, the multiplexer may schedule a time trigger for switchingat a later time. For instance, a splice_schedule( ) command may includeinstructions to splice to content indicated by a unique_program_id field725 at a time specified by a utc_splice_time 720 field as described inFIG. 7. For example, a splice_schedule( ) command may instruct themultiplexer to switch to stream 168 at 6:00 PM. The multiplexer maystore that information into a scheduling table as a time trigger for useat step 935. Afterwards, the multiplexer may return to check for acommand at step 910.

At step 935, the multiplexer may check to see if a time trigger has beenreached. The multiplexer may consult a scheduling table to determine ifthe current time approximately matches the time set as a time trigger.If the current time matches the time set as a time trigger, themultiplexer may proceed to parse the command for switching instructionsby checking a content ID at step 940. Else, the multiplexer may returnto check for a command at step 910.

At step 940, the multiplexer may check a content ID to determine if theID corresponds to a content stream or local storage. For example, aunique_program_id field 725 or unique_program_id field 815 may specify acontent ID. In the case of a time trigger, the content ID store in step930 may retrieved from a scheduling table. The multiplexer may check thecontent ID to determine if it corresponds to an input content stream.For example, the multiplexer may consult a mapping to determine if thecontent ID matches an input content stream. If the content ID matches acontent stream, the multiplexer may proceed to changing the pump at step945. If the content ID matches an ID for some locally stored content,the multiplexer may proceed to retrieve the content from local storageat step 950.

At step 945, the multiplexer may change the output feed provided by oneof the pumping processes to supply the feed identified by the contentID. The multiplexer may switch the pumping process to output the contentstream corresponding to the content ID. The method continues to operateon the active content stream, so the method will now process the newoutputted stream. In some instances, switching streams may be recordedin a log. This log may be compiled in real time. In some instances, inthe event of some kind of error, the multiplexer may switch to a defaultstream. Once the pump has been switched, the multiplexer may return tochecking for a command at step 910.

In some embodiments, the multiplexer may perform the multiplexingoperation without re-encoding the input signals. Re-encoding issometimes performed to manage the bitrate and bandwidth used (e.g., avideo feed may be re-encoded to a more lossy form of encoding, reducingthe data size). In some instances, a content provider, such as contentprovider 405, may provide alternate streams that do not exceed thebitrate of a primary stream. These streams may be the same bitrate, orbe a bitrate that does not exceed the minimum bitrate of the inputstreams. For example, a default stream may be a variable bitrate stream,and an alternate stream may be a constant bitrate stream that may beequal to or less than the bitrate of the default stream. In otherinstances, the streams may be encoded in varying ways, and themultiplexer may be responsible for multiplexing the streams withinbandwidth requirements. The multiplexer may perform the multiplexingoperation on the original data streams as produced by the contentprovider 405 so that the streams are multiplexed less often with lessre-encoding. By reducing the amount of multiplexing and re-encoding ofunderlying content streams, less compression may be used. This may havethe advantage of maximizing the amount of content that can bebroadcasted and/or maximizing the quality and/or resolution of thecontent.

At step 950, the multiplexer may select content from local storage. Themultiplexer may select locally stored content matching the content ID.The locally stored content may be stored in some form of memory, such asa tape or hard drive attached to the multiplexer. The multiplexer maythen insert content from local storage into the stream beingmultiplexed. After inserting the content, the multiplexer may return tochecking for a command at step 910.

In some embodiments, one or more steps of FIG. 9 may be implemented byretrieving information from the scheduler. In some instances, uponreceiving an SCTE 35 protocol message on a channel indicating a blackoutevent, the multiplexer may obtain additional information from thescheduler. For example, a multiplexer may check for an SCTE 35 protocolmessage as in step 910. Upon detecting the SCTE 35 protocol message, themultiplexer may request commands or information from the scheduler. Insome embodiments, a scheduler may supply a region code, a switch nowinstruction, a time trigger instruction, an ID for streaming or contentstorage, and/or any other command or piece of information which may besupplied in an SCTE 35 protocol command as described above. For example,at step 915, a region code may be obtained from the scheduler.

The methods and features recited herein may be implemented through anynumber of computer readable media that are able to store computerreadable instructions. Examples of computer readable media that may beused include RAM, ROM, Electrically Erasable Programmable Read-OnlyMemory (EEPROM), flash memory or other memory technology, CD-ROM, DVD,or other optical disk storage, magnetic cassettes, magnetic tape,magnetic storage, and the like.

Additionally or alternatively, in at least some embodiments, the methodsand features recited herein may be implemented through one or moreIntegrated Circuits (ICs). An IC may, for example, be a microprocessorthat accesses programming instructions or other data stored in a ROM. Insome embodiments, a ROM may store program instructions that cause an ICto perform operations according to one or more of the methods describedherein. In some embodiments, one or more of the methods described hereinmay be hardwired into an IC. For example, an IC may comprise anApplication Specific Integrated Circuit (ASIC) having gates and/or otherlogic dedicated to the calculations and other operations describedherein. In still other embodiments, an IC may perform some operationsbased on execution of programming instructions read from ROM or RAM,with other operations hardwired into gates or other logic. Further, anIC may be configured to output image data to a display buffer.

Although specific examples of carrying out the disclosure have beendescribed, those skilled in the art will appreciate that there arenumerous variations and permutations of the above-described apparatusesand methods that are contained within the spirit and scope of thedisclosure as set forth in the appended claims. Additionally, numerousother embodiments, modifications, and variations within the scope andspirit of the appended claims may occur to persons of ordinary skill inthe art from a review of this disclosure. Specifically, one or more ofthe features described herein may be combined with any or all of theother features described herein.

The various features described above are merely non-limiting examples,and may be rearranged, combined, subdivided, omitted, and/or altered inany desired manner. For example, features of the servers may besubdivided among multiple processors and/or computing devices. The truescope of this patent should only be defined by the claims that follow.

What is claimed is:
 1. A method comprising: receiving, by a firstregional multiplexer, a plurality of alternative video feeds for asingle slot in a regional service lineup, each of the plurality ofalternate video feeds comprising multiplexing instructions indicatingwhich corresponding feed should be selected for inclusion in theregional service lineup; determining one of the plurality of alternativevideo feeds for inclusion in the regional service lineup based on themultiplexing instructions; and transmitting the regional service lineupcomprising the one of the plurality of alternative video feeds.
 2. Themethod of claim 1, wherein the regional service lineup comprises one ofthe plurality of alternative video feeds and a plurality of other videofeeds.
 3. The method of claim 1, further comprising: monitoring thedetermining of the one of the plurality of alternative video feeds; andstoring the monitoring in a log.
 4. The method of claim 1, wherein theplurality of alternative video feeds comprise Internet Protocol feeds,and wherein transmitting the regional service lineup further comprisestransmitting via quadrature amplitude modulation (QAM).
 5. The method ofclaim 1, wherein the multiplexing instructions comprise in-streammessaging.
 6. The method of claim 5, wherein the in-stream messagingcomprises a Society of Cable Telecommunications Engineers (SCTE) 35protocol command.
 7. The method of claim 6, wherein determining the oneof the plurality of alternative video feeds comprises comparing a regionidentifier provided by a scheduler with the SCTE 35 protocol command. 8.The method of claim 7, wherein: the one of the plurality of alternatevideo feeds has a constant bitrate less than or equal to a minimumbitrate of another video feed of the plurality of alternate video feedswith a variable bit rate.
 9. A method comprising: determining aplurality of broadcasts for a single slot in a regional service lineup,wherein each of the broadcasts corresponds to one of a plurality ofgeographic regions; inserting codes into the plurality of broadcasts,the codes configured to instruct a regional multiplexer to select amongthe plurality of broadcasts for inclusion in the regional service lineupin one of the plurality of geographic regions corresponding to theregional multiplexer; and transmitting the plurality of selectedbroadcasts.
 10. The method of claim 9, wherein the regional servicelineup comprises one of the plurality of determined broadcasts and aplurality of other broadcasts.
 11. The method of claim 9, furthercomprising: monitoring the determining of the plurality of broadcasts inreal time; and storing the monitoring in a log.
 12. The method of claim9, wherein the plurality of broadcasts comprise internet protocol feeds,and wherein transmitting the regional service lineup further comprisestransmitting via quadrature amplitude modulation (QAM).
 13. The methodof claim 9, wherein the codes comprise in-stream messaging.
 14. Themethod of claim 13, wherein the in-stream messaging conforms to Societyof Cable Telecommunications Engineers (SCTE) 35 protocols.
 15. Themethod of claim 14, wherein the inserting codes comprises inserting aregion identifier in the in-stream messaging.
 16. The method of claim15, wherein: one of the plurality of determined broadcasts has aconstant bitrate less than or equal to a minimum bitrate of anotherbroadcast of the plurality of determined broadcasts with a variablebitrate.
 17. A method comprising: receiving, by at least one signalinserter, a plurality of alternative video feeds for a single slot in aservice lineup; and inserting, by the at least one signal inserter,in-stream signaling into the plurality of alternative video feeds basedon an instruction from a scheduler to cause at least one multiplexer todetermine alternate content based on the in-stream signaling.
 18. Themethod of claim 17, wherein the instruction from the scheduler comprisesan Event Signaling and Messaging (ESAM) instruction, and wherein thein-stream signaling comprises Society of Cable TelecommunicationsEngineers (SCTE) 35 protocols.
 19. The method of claim 17, furthercomprising determining, by the scheduler, a schedule and a database ofdownstream devices, wherein the downstream devices comprise the at leastone signal inserter and the at least one multiplexer.
 20. The method ofclaim 17, wherein the inserting comprises inserting a region identifierin the in-stream signaling.